home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992…ugust: Hack to the Future / ADC Developer CD (1992-08) (''Hack To The Future'')_iso / Dev.CD 199208.iso / Technical Documentation / DTS Sample Code / Snippets / Platforms & Tools / ◊Other / TRandom 1.0b3 / random.a < prev    next >
Encoding:
Text File  |  1992-07-15  |  1.2 KB  |  62 lines  |  [TEXT/MPS ]

  1. *
  2. *    Apple Macintosh Developer Technical Support, 
  3. *    TRandom 1.0 -  Saturday, October 5, 1991 18:26:35
  4. *
  5. *    Random.a    -    Asm source
  6. *
  7. *    Copyright © 1991 Apple Computer, Inc. 
  8. *    All rights reserved.
  9. *
  10. *  Routine(s):    long AsmRandom();
  11. *  Function:    Returns a random long value
  12. *  Reference:   Toolbox routine for faster access (no A-line trap)
  13.  
  14.  
  15.             SEG            'Main'
  16.             CASE        OFF
  17.             MACHINE        MC68000
  18.         
  19.             ENTRY        AsmRandom
  20.  
  21. Start        DC.W    'Copyright Apple Computer Inc, 1991'
  22.  
  23. AsmRandom    FUNC        EXPORT
  24.  
  25.             MOVEA.L        (A5),A0
  26.             MOVE.W         #$41A7,D0 
  27.             MOVE.W         D0,D2
  28.             MULU.W         -$007C(A0),D0
  29.             MOVE.L         D0,D1
  30.             CLR.W          D1
  31.             SWAP           D1
  32.             MULU.W         -$007E(A0),D2
  33.             ADD.L          D1,D2
  34.             MOVE.L         D2,D1
  35.             ADD.L          D1,D1
  36.             CLR.W          D1
  37.             SWAP           D1
  38.             ANDI.L         #$0000FFFF,D0
  39.             SUBI.L         #$7FFFFFFF,D0
  40.             ANDI.L         #$00007FFF,D2
  41.             SWAP           D2
  42.             ADD.L          D1,D2
  43.             ADD.L          D2,D0
  44.             BPL.S        @1
  45.             ADDI.L         #$7FFFFFFF,D0
  46. @1            MOVE.L         D0,-$007E(A0)
  47.             CMPI.W         #$8000,D0
  48.             BNE.S          @2
  49.             CLR.W          D0
  50. @2            MOVE.W         D0,$0004(A7)
  51.             RTS
  52.             ORI.B      #$00,D0
  53.             ORI.B      #$00,D0  
  54.             ORI.B      #$00,D0
  55.             DC.W       $0000
  56.  
  57.             
  58.             ENDFUNC
  59.  
  60.             END
  61.         
  62.